Situational aware output configuration and execution

ABSTRACT

A method and apparatus are provided which allow a user to define an output device behavior in a variety of status and/or event circumstances via creating a binding or logical connection between a logic function and one or more status/event indicators. The method provides for user-defined output behavior through linking a logical function with system and module status/event indicators, whereby the output value may be determined according to the status/event indicators and user-defined function blocks. Also disclosed is an output device with an output providing an output signal according to an output value, a communication interface adapted to receive messages from a network, an indicator adapted to receive message information from a network and providing indicator data, and a logic unit which receives message information from the network, indicator data from the indicator, and which performs a logic function. The logic unit selectively provides the output value to the output according to one of the message information and the logic function.

CROSS REFERENCE TO RELATED APPLICATION(S)

[0001] This application is a continuation application of U.S. patentapplication Ser. No. 09/574,982 filed May 19, 2000, entitled SITUATIONALAWARE OUTPUT CONFIGURATION AND EXECUTION. The entirety of which isincorporated herein by reference.

TECHNICAL FIELD

[0002] The present invention relates to the art of industrialcontrollers, and more particularly to a method and apparatus forproviding an output value to an output device.

BACKGROUND OF THE INVENTION

[0003] Industrial controllers are special purpose computers used forcontrolling industrial processes, manufacturing equipment, and otherfactory automation. In accordance with a control program, the industrialcontroller measures one or more process variables or inputs reflectingthe status of a controlled process, and changes outputs effectingcontrol of the process. The inputs and outputs may be binary, (e.g., onor off), as well as analog inputs and outputs assuming a continuousrange of values. The control program may be executed in a series ofexecution cycles with batch processing capabilities.

[0004] The measured inputs received from a controlled process and theoutputs transmitted to the process generally pass through one or moreinput/output (I/O) modules. These I/O modules serve as an electricalinterface between the controller and the controlled process, and may belocated proximate or remote from the controller. The inputs and outputsare recorded in an I/O table in processor memory. Input values may beasynchronously read from the controlled process by one or more inputmodules and output values are written directly to the I/O table by theprocessor for subsequent communication to the process by specializedcommunications circuitry. An output module may interface directly with acontrolled process, by providing an output from an I/O table to anactuator such as a valve, solenoid, and the like.

[0005] During execution of the control program, values of the inputs andoutputs exchanged with the controlled process pass through the I/Otable. The values of inputs in the I/O table are asynchronously updatedfrom the controlled process by dedicated scanning circuitry. Thisscanning circuitry may communicate with input modules over a bus on abackplane or network communications. The scanning circuitry alsoasynchronously writes values of the outputs in the I/O table to thecontrolled process. The output values from the I/O table are thencommunicated to one or more output modules for interfacing with theprocess. Thus, the processor may simply access the I/O table rather thanneeding to communicate directly with the controlled process.

[0006] An industrial controller may be customized to a particularprocess by writing control software that may be stored in thecontroller's memory and/or by changing the hardware configuration of thecontroller to match the control task. Controller hardware configurationis facilitated by separating the industrial controller into a number ofcontrol modules, each of which performing a different function.Particular control modules needed for the control task may then beconnected together on a common backplane within a rack. The controlmodules may include processors, power supplies, network communicationmodules, and I/O modules exchanging input and output signals directlywith the controlled process. Data may be exchanged between modules usinga backplane communications bus, which may be serial or parallel. Atypical hardware modification may involve adding additional I/O modulesso as to be able to control additional equipment.

[0007] Various control modules of the industrial controller may bespatially distributed along a common communication link in severalracks. Certain I/O modules may thus be located in close proximity to aportion of the control equipment, and away from the remainder of thecontroller. Data is communicated with these remote modules over a commoncommunication link, or network, wherein all modules on the networkcommunicate using a standard communications protocol.

[0008] In a typical distributed control system, one or more outputmodules are provided for interfacing with a process. The outputs derivetheir control or output values in the form of a message from a master orpeer device over a network or a backplane. For example, an output modulemay receive an output value from a processor, such as a programmablelogic controller (PLC), via a communications network or a backplanecommunications bus. The desired output value is generally sent to theoutput module in a message, such as an I/O message. The output modulereceiving such a message will provide a corresponding output (analog ordigital) to the controlled process.

[0009] Conventional output module devices are typically provided anoutput value solely through network messages, and some may go to a knownstate or hold the last value upon a network communication fault. Forexample, the module provides an output according to an output valuereceived in an I/O message from a master (e.g., a PLC), and willmaintain that value during normal operation until another message isreceived or a network communications fault occurs. However, there aremany conditions or events for which it may be desirable to provideanother output value to the device. Heretofore, the source of an outputvalue was determined according to fixed controller architectureconstraints. Thus a user had limited ability to define output devicebehavior in lieu of regular I/O messages.

SUMMARY OF THE INVENTION

[0010] In accordance with the present invention, there is provided amethod and apparatus which allows a user to define an output devicebehavior in a variety of status and/or event circumstances via creatinga binding or logical connection between a logic function and one or morestatus/event indicators. Whereas conventional output devices providedonly a limited capability to define output states in the presence of anetwork communication fault, the present invention provides foruser-defined output behavior through linking a logical function withsystem and module status/event indicators, whereby the output value maybe determined according to the status/event indicators and user-definedfunction blocks.

[0011] According to one aspect of the invention, there is provided amethod for providing an output value for an output which comprisesassociating the output with a logic function in communication with anetwork, associating the logic function with an indicator, andselectively providing an output value to the output from one of thelogic function and a network value message, according to the logicfunction. The logic function may take into account, for example,information relating to the status or health of the output device,network status, and/or the health or status of one or more devices onthe network. In this regard, the method may include receiving a statusmessage from the network, receiving a value message from the network,and updating the indicator according to the status message and/or thestatus of the device.

[0012] A status message may comprise information relating to the statusof the network and/or other modules or devices on the network, includingthe value of one or more hardware inputs or outputs. Thus, the methodallows a user-defined logic function to take various status and eventinformation into account in setting the output value. In addition tostatus information, event information may be considered by the logicfunction in determining the output value. Such event information mayinclude, for example, the occurrence of faults in a system. Theinvention allows a user to define which status/event indicators will beused by the logic function, and further to define the logic function. Inthis way, a user has significantly more design flexibility than waspossible with conventional output modules.

[0013] According to another aspect of the present invention, an outputdevice comprises an output providing an output signal according to anoutput value, a communication interface adapted to receive messages froma network, an indicator adapted to receive message information from thecommunication interface and providing indicator data, and a logic unitwhich receives message information from the communication interface andindicator data from the indicator, and which performs a logic function.The logic unit selectively provides the output value to the outputaccording to either the message information or the logic function.

[0014] The logic unit may thus take into account indicator data indetermining the output value for the device, which was not previouslyavailable. In this regard, the indicator data may include, for example,an I/O connection health indicator, a messaging connection healthindicator, an I/O connection error indicator, a run event indicator, andidle event indicator, a network error indicator, an I/O point faultindicator, a hardware input indicator, a hardware output indicator, andI/O data. The device allows a user to define both the status/eventindicators which will be considered, as well as the decisional logicused in providing an output value to the output of the device. The logicunit, for example, may comprise a processor or other logic device, whichmay be configured by a user to perform various functions, such asboolean operations, flip-flops, counters, and/or timers.

[0015] According to another aspect of the invention, a method isprovided for defining output behavior in an output device, comprisingdefining a logical function using one or more function blocks, linkingthe logical function with at least one status/event indicator, andproviding an output value according to the logic function and the atleast one status/event indicator. The status/event indicator maycomprise information relating to the status of one or more devices on anetwork. This information may include, for example, an I/O connectionhealth indicator, a messaging connection health indicator, an I/Oconnection error indicator, a run event indicator, and idle eventindicator, a network error indicator, an I/O point fault indicator, ahardware input indicator, a hardware output indicator, and I/O data. Inaddition, defining the logical function using one or more functionblocks may comprise, for example, configuring the function blocks toimplement one or more of boolean operations, flip-flops, counters, and atimers using a network configuration tool. In this way, a user mayprogram or configure an output device, such as an output module, toperform various logical functions depending on the status of one or morenetwork devices, in order to generate an output value. This methodprovides the user with significant control system design flexibility notpreviously possible with conventional output devices.

[0016] To the accomplishment of the foregoing and related ends, theinvention, then, comprises the features hereinafter fully described. Thefollowing description and the annexed drawings set forth in detailcertain illustrative embodiments of the invention. However, theseembodiments are indicative of but a few of the various ways in which theprinciples of the invention may be employed. Other aspects, advantagesand novel features of the invention will become apparent from thefollowing detailed description of the invention when considered inconjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017]FIG. 1 is a flow diagram illustrating a method of providing anoutput value for an output device in accordance with the presentinvention;

[0018]FIG. 2 is a schematic diagram illustrating an output device inaccordance with an aspect of the invention;

[0019]FIG. 3 is a schematic diagram illustrating an output device inaccordance with another aspect of the invention;

[0020]FIG. 4 is a schematic diagram illustrating an exemplaryconfiguration of an output device in accordance with another aspect ofthe invention;

[0021]FIG. 5 is a schematic diagram illustrating another exemplaryconfiguration of an output device in accordance with the invention; and

[0022]FIG. 6 is a schematic diagram illustrating an exemplary systemincluding an output device in accordance with the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0023] The various aspects of the present invention will now bedescribed with reference to the drawings, wherein like referencenumerals are used to refer to like elements throughout. The inventionprovides a method and apparatus for providing an output value in anoutput device, which allows a user to define a logic function and toassociate the logic function with one or more status/event indicators.The logic function then provides an output value to the device outputaccording to the status/event indicators as well as the logic program.This may determine, for example, whether the output value is based on anI/O message received by the device from a network, or based on thelogic. As opposed to conventional methods and apparatus, the presentinvention allows a user to define output device behavior in a variety ofcircumstances, thereby providing significantly improved designflexibility.

[0024] Referring now to the drawings, FIG. 1 illustrates a method 2 ofproviding an output value for an output device, wherein an output isassociated with a logic function at step 4 and the logic function isassociated with one or more status/event indicators at step 6. Asdiscussed in greater detail hereinafter, the logic function may becomprised of one or more function blocks, for example, booleanoperators, bi-stable functions (e.g., flip-flops), counters, timers,analog functions, etc. The association of the logic function with theindicator at step 6 may be a logical connection (e.g., a binding) in anoutput module, which a user may accomplish via a configuration toolthrough a network, as discussed in greater detail infra. The method alsocomprises receiving status and value messages from the network at steps8 and 10, respectively, after which the status/event indicators areupdated at step 12 according to information received in the statusmessage and further according to the status of the output device. Itwill be appreciated that a single network message may include both valueand status information. In this regard, the network message may includeindications of the status of various network devices, for instance,network status, devices status of other modules, etc. The message mayalso include information about the occurrence of various events, such asfaults and the like. In this way, the method maintains situationawareness of a variety of status/event conditions in a distributedcontrol system, which may be taken into account in determining an outputvalue for the output module or device.

[0025] The status/event indicator may comprise, for example, a list ortable in module memory, whereby a processor in the module may update theinformation upon receipt of network message, and may access theinformation in determining an output value in accordance with the userdefined logic function. At step 14, the logic function is executed,wherein the associated status/event indications are consulted indetermining an output value for the device. Thereafter, the logicfunction provides an output value to the output at step 16. The logicitself may compute or derive the output value, or the value may beobtained from a network value message (e.g., a typical I/O message),depending on the logic function. Since the logic function itself may beconfigured to account for one or more of the status/event indications inthe indicator, the determination of the output value according to themethod 2 provides numerous options for a user in defining the outputdevice behavior. Optionally, a network message may be sent at step 18according to the logic function and/or the indicator. For example, wherean event (e.g., a fault) causes the output value to be derived from thelogic function instead of from an I/O message, a user may wish toinitiate a network message telling other devices on the network that theoutput device is changing its control strategy because of the fault.

[0026] The method 2, thus allows significantly improved flexibility indefining or configuring distributed control system elements. The methodallows an output device or module to be aware of its own situation(e.g., status) as well as the status of other devices on a network andof the occurrence of various events in the system. These indications areassociated (e.g., linked or bound) with a user-defined logic functionwhich accounts for these indications in determining the output value forthe device.

[0027] Referring now to FIG. 2, a system 50 and output device 52 areillustrated, wherein the device 52 is provided with a logic function 54associated with one or more status/event indicators 56, an output 58,and a network interface 60. The network interface 60 transmits andreceives information to and from a network 62, in the form of messages.The messages may be value messages and/or status messages, or themessages may each include both value and status information. Thestatus/event indicators 56 are likewise associated with the network, andthus may receive updated status and/or event information from networkmessages. The logic function 54 selectively provides an output value tothe output 58, which in turn provides an output signal (not shown) to aprocess 64. By taking into account the status/event indicators 56, thelogic function 54 provides the ability to define the behavior of theoutput 58 in a variety of situations which was not heretofore possible.

[0028] The logic function 54 and the association thereof with thestatus/event indicators 56 in device 52 may be configured via aconfiguration tool 66 connected to the network 62. For example, a usermay define the logic function 54 in terms of various function blocks(e.g., boolean operators, flip-flops, counters, timers, etc.) and createan association between the logic function 54 and the status/eventindicators 56 using the tool 66, which may be a computer, workstation,etc. The configuration (not shown) may then be sent by the configurationtool 66 to the output device 52 via one or more messages on the network62.

[0029]FIG. 3 illustrates further aspects of the present invention,wherein an output device 100 has an output 102 for providing an outputsignal (not shown) to a process 104. The device 100 also comprises acommunications or network interface 106 providing for transmissionand/or receipt of messages to and from a network 108. A processor 110interfaces with the network interface 106 along with a memory 112 andthe output 102. In addition, the device 100 may include one or moreinputs 114 for measuring various parameters or variables associated withthe process 104. In this regard, the device 100 may be an I/O module.The network 108 may provide communications between the device 100 andone or more other devices connected thereto, such as computers,workstations, other I/O modules, PLCs, and the like (not shown), inorder to form a distributed control system. It will be appreciated thatthe output device 100 may alternatively be connected to othercommunications mediums, such as, for example a backplane communicationsbus, and the like, within the scope of the invention.

[0030] In this regard, the output device 100 may receive I/O or othertypes of messages from a master (e.g., a PLC) via the network 108 (orother communications medium) and the network interface 106. Thesemessages may include value and/or status information which are used toupdate one or more status/event indicators 116 in the memory 112, and/orto provide an output value to the output 102. A user-defined logicfunction 118 may also reside in the memory 112 for determining an outputvalue for the output 102 according to one or more of the status/eventindicators 116.

[0031] According to another aspect of the invention, the logic functionmay be performed or executed by the processor 110 according to programinstructions (not shown) within the memory 112. In addition, theprocessor may update the status/event indicators 116 in the memory 112according to messages (not shown) received from other network devicesvia the network 108 and interface 106. The configuration or definitionof the logic function 118 as well as the association thereof with one ormore of the status/event indicators 116, may be performed by a user viaa configuration tool (not shown) through the network 108 and interface106. The association between the indicators 116 and the logic function118 may comprise, for example, a binding or linking, whereby the outputvalue determination takes the indicators into account. As discussed ingreater detail infra, the logic function 118 may be defined in terms ofone or more function blocks (not shown), whereby a user may configurelogical or other functions (e.g., boolean operations, flip-flops, timer,counters, and the like) in order to provide an output value (not shown)to the output 102. The logic function 118 may alternatively beimplemented be circuitry or components (not shown) other than theprocessor 110, which may be adapted to provide an output value to theoutput 102. The behavior of the output 102 may therefore be defined in avariety of event/status situations, providing the user with significantdesign flexibility not otherwise possible with conventional devices.

[0032] Referring now to FIG. 4, several aspects of the present inventionare illustrated in which an output device 200 comprises an output 202providing an output signal 204 to a process 206 according to an outputvalue 208 determined by an exemplary logic function 210. The logicfunction 210 is illustrated as comprising a logical function block 212(inverter), a function 214 (A), a function 216 (B), and a function block218 (OR), with the output of the OR function block 218 providing theoutput value 208 to the output 202. It will be noted that logic function210 may comprise function blocks (e.g., 212, 218) as well as otherfunctions (e.g., 214, 216).

[0033] The inputs of function block 218 are connected to the outputs offunctions 214 and 216. The inverter function block 212 and the function214, are associated with (e.g., bound to) an I/O connection healthstatus/event indicator 220 via a binding 222, with the inverter functionblock 212 providing a signal to the input of function 216. The indicator220 is one element in a status/event indicator table or list 224 whichfurther includes a message connection health indicator 226, an I/O errorindicator 228, a run/idle indicator 230, a network error indicator 232,an I/O point fault indicator 234, a hardware input indicator 236, ahardware output indicator 238, an I/O data indicator 240, and an outputdevice status indicator 242. It will be appreciated that thestatus/event indicator list 224 may comprise any number of indicatorsrelated to system and/or module status or event information, and is notlimited to those illustrated in FIG. 4.

[0034] A network interface 244 provides communication capabilitiesbetween the output device 200 and a network 246, and may be operativelyconnected to the status/event indicator list 224 as well as a messagebuffer 248. As illustrated, the output device 200 may provide an outputvalue 208 according to the logic function 210, based on one or moreentries in the status/event indicator list 224. In this way, thebehavior of the output 202 may be defined by a user, taking into accountthe status of any device in a control system, including the status 242of the output device 200. In the exemplary configuration of FIG. 4, asafety application is illustrated in which control of the output 202 isswitched between the functions A 214 and B 216 depending on the healthof an I/O connection from a master (not shown), as indicated by thestatus/event indicator 220.

[0035] If the connection is healthy, function A 214 controls the output,for example, by providing the output value 208 according to an I/Omessage (not shown) received from the network 246 via the interface 244,and provided to function A 214 of the logic function 210 from themessage buffer 248. If the I/O connection with the master is faulted,the I/O connection health indicator 220 in list 224 is updated by thenetwork interface 244, and the binding 222 between indicator 220 andlogic function 210 causes function B 216 to provide an output value 208to the output 202 via the OR function block 218.

[0036] The function B 216, for example, may implement a controlled shutdown of the process 206 due to the I/O connection health faultassociated with the master. In addition, the occurrence of such a faultmay be configured by a user to trigger transmission of a message to thenetwork 246 via the message buffer 248 and the network interface 244.This may be accomplished in the definition of the logic function 210 by,for example, linking the output of the inverter function block 212 tothe message buffer 248 as illustrated in FIG. 4. In this way, the outputdevice 200 may be configured to perform a controlled shutdown of theprocess 206 according to the event status indicator 220, and tobroadcast a message across the network 246 informing one or more devicesthereon that a controlled shutdown of the process 206 is underway.

[0037] Many different configurations of functions are possible withinthe scope of the invention, including those not specifically illustratedin the drawings. In addition, many different functions are possible,including but not limited to boolean operators, flip-flops, counters,timers, analog functions, and the like.

[0038] Referring now to FIG. 5, another exemplary application of thepresent invention is illustrated wherein an output device 300 comprisesan output 302 providing an output signal 304 to a process 306 accordingto an output value 308 from a logic unit 310. The logic unit 310 isassociated with a list 324 of status/event indicators which comprises anI/O connection health indicator 320, a message connection healthindicator 326, an I/O error indicator 328, a run/idle indicator 330, anetwork error indicator 332, an I/O point fault indicator 334, ahardware input indicator 336, a hardware output indicator 338, an I/Odata indicator 340, and an output device status indicator 342. Theassociation between the event/status indicator list 324 and the logicunit 310 comprises a binding 322 which provides an input to the logicunit 310 from the I/O point fault indicator 334. The entries in thestatus/event indicator list 324 are updated by a network interface 344according to one or more messages (not shown) from a network 346, whichmay include, for example, network I/O messages, network status messages,network value messages, etc.

[0039] A message buffer 348 provides for transmission and receipt ofnetwork messages from and to the logic unit 310. Referring also to FIG.6, various aspects of the invention are illustrated in an exemplaryredundancy application. In this example, two input devices 350 and 352feed the output device 300, which provides an output signal 304 to theprocess 306 based thereon. The output device 300 may receive the values360 and 362, respectively, of the input devices 350 and 352, forexample, from the message buffer 348. This may be the case where one ormore separate input modules (not shown) on the network 346 provide thevalues 360 and/or 362. Where the output device 300 is an I/O module, theinputs may be part of the device 300.

[0040] The logic unit 310 of output device 300 compares the two inputvalues 360 and 362 before making any decisions. If one of the inputdevices 350 or 352 were to fail (e.g., device 352), the output device300 could continue to operate using only input device 350, according tothe user defined configuration of the logic unit 310. The failure of aninput in this example may be determined according to the I/O point faultindicator 334. The output device 300 can further be configured to send amessage 370 from the logic unit 310 to another device (not shown) on thenetwork 346, via buffer 348 and interface 344, to indicate that a faulthas occurred in one of the input devices 350 and/or 352.

[0041] Furthermore, the logic unit 300 could be configured to continueoperation according to one of the redundant input devices 350 or 352 fora predetermined time period after sending the message. In this case, themessage 370 could include information that an input device has failed,and the output device 300 will continue to operate according to a singleremaining input device for a specified time period. After the timeperiod has expired, the logic unit 310 may be configured, for example,to perform a controlled shut down of the process 306. The output device300 can thus notify a master controller (e.g., a PLC on the network346), via message 370, that input device 352 has failed, and thatoperation with device 350 will continue for a configurable time period.This allows, for example, time for the failed device to be replacedwithout stopping the process.

[0042] It will be appreciated that many configurations and output devicebehaviors are possible according to the invention, and that theinvention is not limited to those illustrated and described herein. Forinstance, many different logical functions may be implemented byconfiguring one or more logical function blocks with associations to oneor more status/event indicators. In this regard, the function blocks maybe boolean operators, flip-flops, counters, timers, etc., and may alsoinclude analog functions within the scope of the present invention.

[0043] Although the invention has been shown and described with respectto a certain embodiments, it will be appreciated that equivalentalterations and modifications will occur to others skilled in the artupon the reading and understanding of this specification and the annexeddrawings. In particular regard to the various functions performed by theabove described components (assemblies, devices, circuits, systems,etc.), the terms (including a reference to a “means”) used to describesuch components are intended to correspond, unless otherwise indicated,to any component which performs the specified function of the describedcomponent (i.e., that is functionally equivalent), even though notstructurally equivalent to the disclosed structure, which performs thefunction in the herein illustrated exemplary embodiments of theinvention. In this regard, it will also be recognized that the inventionincludes a system as well as a computer-readable medium havingcomputer-executable instructions for performing the steps of the variousmethods of the invention.

[0044] In addition, while a particular feature of the invention may havebeen disclosed with respect to only one of several embodiments, suchfeature may be combined with one or more other features of the otherembodiments as may be desired and advantageous for any given orparticular application. Furthermore, to the extent that the terms“includes”, “including”, “has”, “having”, and variants thereof are usedin either the detailed description or the claims, these terms areintended to be inclusive in a manner similar to the term “comprising.”

What is claimed is:
 1. A method of providing an output value for anoutput device having a device status, the method comprising: providingan output device having an output generating an output signal accordingto an output value; associating the output with a logic function incommunication with a network; associating the logic function with anindicator; receiving a status message from the network; receiving avalue message from the network; updating the indicator according to thestatus message and the device status; and selectively providing theoutput value to the output from one of the logic function and the valuemessage, according to the logic function.
 2. The method of claim 1,wherein associating the logic function with the indicator comprisescreating a binding there between.
 3. The method of claim 1, whereinupdating the indicator according to the status message and the devicestatus comprises receiving at least one of an I/O connection healthindicator, a messaging connection health indicator, an I/O connectionerror indicator, a run event indicator, and idle event indicator, anetwork error indicator, an I/O point fault indicator, a hardware inputindicator, a hardware output indicator, and I/O data from the statusmessage.
 4. The method of claim 1, wherein the logic function comprisesat least one function block, and wherein selectively providing theoutput value to the output device from one of the logic function and thevalue message according to the logic function comprises executing atleast one function block according to the indicator.
 5. The method ofclaim 4, wherein the function block comprises at least one of a booleanoperator, a flip-flop, a counter, and a timer.
 6. The method of claim 5,wherein updating the indicator according to the status message and thedevice status comprises receiving at least one of an I/O connectionhealth indicator, a messaging connection health indicator, an I/Oconnection error indicator, a run event indicator, and idle eventindicator, a network error indicator, an I/O point fault indicator, ahardware input indicator, a hardware output indicator, and I/O data fromthe status message.
 7. The method of claim 6, wherein associating thelogic function with the indicator comprises creating a binding therebetween.
 8. The method of claim 1, further comprising sending a networkmessage according to at least one of the logic function and theindicator.
 9. An output device, comprising: an output providing anoutput signal according to an output value; a communication interfaceadapted to receive messages from a network; an indicator adapted toreceive message information from the communication interface andproviding indicator data; and a logic unit receiving message informationfrom the communication interface, receiving indicator data from theindicator, and performing a logic function; wherein the logic unitselectively provides the output value to the output according to one ofthe message information and the logic function.
 10. The output device ofclaim 9, wherein the indicator data comprises at least one of an I/Oconnection health indicator, a messaging connection health indicator, anI/O connection error indicator, a run event indicator, and idle eventindicator, a network error indicator, an I/O point fault indicator, ahardware input indicator, a hardware output indicator, and I/O data. 11.The output device of claim 10, wherein the logic unit comprises aprocessor, a memory, and a control program.
 12. The output device ofclaim 11, wherein the logic function comprises at least one functionblock bound to the indicator.
 13. The output device of claim 10, whereinthe memory comprises at least one indicator including the indicatordata.
 14. The output device of claim 13, wherein the processor updatesthe indicator according to network messages and the device status. 15.The output device of claim 14, wherein the function block comprises atleast one of a boolean operator, a flip-flop, a counter, and a timer.16. The output device of claim 9, wherein the logic function comprisesat least one function block bound to the indicator.
 17. The outputdevice of claim 9, wherein the logic function comprises at least one ofa boolean operator, a flip-flop, a counter, and a timer.
 18. A method ofdefining output behavior in an output device, comprising: defining alogical function using one or more function blocks; linking the logicalfunction with at least one status/event indicator, wherein thestatus/event indicator comprises information relating to the status ofone or more devices on a network; and providing an output valueaccording to the logic function and the at least one status/eventindicator.
 19. The method of claim 18, wherein defining the logicalfunction using one or more function blocks comprises configuring thefunction blocks to implement one or more of boolean operations,flip-flops, counters, and a timers.
 20. The method of claim 18, whereindefining the logical function using one or more function blockscomprises using a network configuration tool.
 21. The method of claim18, wherein linking the logical function with at least one status/eventindicator comprises creating a binding.
 22. The method of claim 18,further comprising updating the status/event indicator with informationfrom a network message comprising at least one of an I/O connectionhealth indicator, a messaging connection health indicator, an I/Oconnection error indicator, a run event indicator, and idle eventindicator, a network error indicator, an I/O point fault indicator, ahardware input indicator, a hardware output indicator, and I/O data.